function main() {		
	var collection;
	var traderColl;
	var docEntry;
	var centry;
	var itemAlterCodeID;
	var itemEntryID;
	var itemAlterCode;
	var codeVal;
    var nameVal;
	var cstmID = null;
	var customer;
	var customerID;
	var customerBranch;
	var traderID;
	var trader;
	var traderBranch;
	var line;
	var actLogger;
	var warnings;
	
	var logger = sc$APIContext.GetActionLogger();

	var dic = sc$Context.JsonDeserialize(sc$APIContext.GetImportBuffer());
	traderID = sc$ApplImportScript.FindRecord("heCustomers", true, ["heID"], [dic["CstmID"].toString()], "heTrdrID");
	traderColl = sc$Context.DataObjects.GetMasterByID("Hercules", "Traders", traderID);							
	traderColl.Logic.DisableConstraints();
	trader = traderColl[0];	
	customer = trader.Customers.SearchByField("ID", dic["CstmID"].toString());
	traderBranch = trader.TraderBranches.SearchByField("Name", dic["CsbrName"].toString());
	
		

	collection = sc$Context.DataObjects.NewMaster("Hercules", "CustRecptEntries");
	collection.Logic.DisableConstraints();
	docEntry = collection[0];

	docEntry.OperationFlags.Add(docEntry.DentOperationFlagEnum.FillValuesMissing);
	docEntry.OperationFlags.Add(docEntry.DentOperationFlagEnum.AddKitItemLines);
	centry = docEntry.FinEntries[0];
	
	docEntry.SetValue("SourceType", 9);
	//centry.SetValue("CmdtType", 2);		// sales orders
	
	if (dic["DocCode"] != null) {
		docEntry.SetValue("DocCode", dic["DocCode"]);
	}
	if (dic["DocNumber"] != null) {
		docEntry.SetValue("DocNum", dic["DocNumber"]);
	}
	
	docEntry.SetValue("DcsrID", dic["SeriesID"])
	
	if (customer != undefined && customer != null) {
		centry.SetValue("CstmID", customer.ID);
	}
	if (customerBranch != undefined && customerBranch != null) {
		centry.SetValue("CsbrID", customerBranch.ID);
	}
	//return sc$Context.JsonSerialize("77");
	docEntry.SetValue("CompID", sc$Application.CurrentCompanyID);
	
	var cmbrID = sc$APIContext.GetBranchID();
	if (cmbrID != null) {
		docEntry.SetValue("CmbrID", cmbrID);
	}
	//var cbwhID = dic["WarID"];
	//if (cbwhID != null) {
	//	centry.SetValue("CbwhID", cbwhID);
	//}
		
	var agentID = dic["agent"];
	if (agentID != null) {
		centry.SetValue("AgntID", agentID);
	}

	
	
	var dicLines = sc$Context.JsonDeserialize(dic["Lines"]);
	
	for (var i = 0; i < dicLines.Count; i++) {
	
		itemAlterCodeID = null;
		itemEntryID = null;
		codeVal = null;
		nameVal = null;
		
		
		//return sc$Context.JsonSerialize("90");
		if(dicLines[i]["Type"]==2)
		{
			line = centry.Lines.New();	
			centry.Lines.Add(line);
			line.SetValue("LineType", dicLines[i]["Type"]);
			line.SetValue("TValue", dicLines[i]["CenlPrice"]);			
			line.SetValue("BnttID","ba64d69f-a398-11e3-be7a-f4b7e2d0efba");	//Παραλαβή Αξιογράφου
			line.SetValue("BnknBnncID","83fd18d7-a39d-11e3-be7a-f4b7e2d0efba");//Eπιταγή Εισπρακτέα			
			line.SetValue("BnknBnntID","912a1374-a39d-11e3-be7a-f4b7e2d0efba");	//Epitagi			
			line.SetValue("BnknKind",0);//0 Eisprakteo 1 Plirwteo				 
			line.SetValue("FdacID",dicLines[i]["CenlItemCode"]);
			line.SetValue("BnknBankID",dicLines[i]["BANK"]);
			line.SetValue("BnknBanknoteNum",dicLines[i]["Number"]);			
			line.SetValue("BnknDueDt",DateTime.Parse(dicLines[i]["ExDate"].ToString()));
			//return sc$Context.JsonSerialize(dicLines[i]["NUMBER"]);
			line.EndEdit();
		}
		else
		{
			line = centry.Lines.New();	
			centry.Lines.Add(line);
			line.SetValue("LineType", dicLines[i]["Type"]);
			line.SetValue("TValue", dicLines[i]["CenlPrice"]);
			line.SetValue("FdacID",dicLines[i]["CenlItemCode"]);
			if(dicLines[i]["Type"]==4)
			{
				line.SetValue("CrcrID","1bb7f738-a671-e411-9b7d-50e5495b8426");	
			}
			line.EndEdit();
		}
		
			
		
		
	}
	
	centry.EndEdit();	
	docEntry.EndEdit();
	
	sc$Context.DataObjects.ExternalDataFix("Hercules", "CustRecptEntries", collection);
	actLogger = sc$ApplImportScript.SaveFromImport("Hercules", "CustRecptEntries", collection);
	logger.Merge(actLogger);
	
	var outDic = new scDictionary();
	outDic["Cookie"]  = sc$APIContext.GetCookie();
	outDic["EntityId"] = docEntry.ID;
	outDic["CustomerId"] = customer.ID;
	outDic["Messages"] = logger;

	return sc$Context.JsonSerialize(outDic);
}

function FindLookupItem(codeVal, nameVal, lookupTable, propName, entity, lookupVersion) {	
	var recID = sc$ApplImportScript.FindArrayCodeNameRecord(lookupTable, codeVal, nameVal, lookupVersion);	
	if (recID != null) {		
		entity.SetValue(propName, recID); 
	}
}